Exactly what appears under the ~SB~BitMap~SB~ menu depends upon the bit map PROCs installed in Vision Lab. If you are a programmer the ╥shared.h,╙ ╥Easy ╘C╒ Threshold,╙ and ╥Easy ╘C╒ Threshold.c╙ files will provide an example for adding your own bit map PROCs to Vision Lab. (Note the ╥Easy ╘C╒ Threshold╙ file is a LightspeedC project file)
Some PROCs may need special hardware or software to run. For example, a PROC that uses a hierarchical menu will be dimmed (unavailable) unless you are using system 4.1 or greater. The following are descriptions of the bit map PROCs that come with Vision Lab.
In the descriptions below a value of 0 is black and a value of 255 is black. The gray map is applied to the pix map before obtaining these values. This means that the brightness and contrast settings you set using the gray map will affect the bit map approximations produced by the PROCs listed below.
~F0~~s12~Albie~F3~~s9~
Albie uses an algorithm that is very similar to Floyd-Steinberg for creating a bit map approximation. The error in assuming a pixel is either black or white is distributed as follows:
~F4~~C~
X 3/8
3/8 1/4
~F3~~L~
Although this method produces good results for black and white the implementation in Vision Lab is not very good for color separation. The errors involved produce color bleeding in certain images.
~F0~~s12~Contour~F3~~s9~
Contour is not really a bit map approximation. Instead it is a method that outlines areas where pixels change values. ~SB~Set Levels~SB~ adjusts the ╥sensitivity╙ of the contouring. Color separating using this method can produce some interesting results.
~F0~~s12~Dither~F3~~s9~
Dither uses different size matrixes to determine whether a pixel should be black or white. ~SB~2 X 2 Dither~SB~, ~SB~4 X 4 Dither~SB~, ~SB~8 X 8 Dither~SB~, and ~SB~16 X 16 Dither~SB~ set the matrix size to use. The values contained in the matrix determine the cut off values to use in a manner similar to Threshold. The 2╩X╩2 matrix contains the following values:
~F4~~C~
0 128
192 64
~F3~~L~
If the image is larger than the matrix size the matrix is simply repeated to the left and down until it covers the entire image.
~F0~~s12~Floyd-Steinberg~F3~~s9~
Floyd-Steinberg uses the Floyd-Steinberg algorithm for creating a bit map approximation. The error in assuming a pixel is either black or white is distributed as follows:
~F4~~C~
X 7/16
3/16 5/16 1/16
~F3~~L~
Although this method produces extremely good results for black and white the implementation in Vision Lab is not very good for color separation. The errors involved produce color bleeding in certain images.
~F0~~s12~Patterns~F3~~s9~
Patterns maps pixel values into patterns that represent 7 levels of gray from black to white.
~F0~~s12~Random~F3~~s9~
Random is operates in a manner similar to Threshold. The difference being that the cut off value in Random is selected randomly from 0 to 255 for every pixel rather than being fixed at 128.
~F0~~s12~Threshold~F3~~s9~
Threshold is the simplest of all the bit map approximations. Any pixel with a value less than the cut off value of 128 is assumed to be black otherwise it is set to white. Threshold can be used to produce surprisingly good color separations in images dominated by colors close to red, green, blue, cyan, magenta, and yellow. Colors such as flesh tones cannot be produced accurately by Thresholding.
~F0~~s12~Zebra~F3~~s9~
Zebra is more of a ╥special effect╙ than a bit map approximate. The pixel value is divided by a number related to the number set by ~SB~Set Levels~SB~. The pixel is then turned to black for odd results and white for even results.